/**
 * 对分页的进一步封装，依赖 jquery 和 jquery.pager.js 。 函数开始注释部分包括一个 demo
 */
(function($, window) {
	function popup(options) {
		var current = 1;	
		// 当前页面
		var defaultParams = {
			id:'',// select 或 input Id	
			method : 'post', // 请求方法 post|get
			type : 'json', // 返回内容格式，json|text //NOT SUPPORT
			url : '../shop/find/shopList/', // 请求地址，注意函数会自定添加分页的两个参数 ‘0/10’
			data : {}, // 使用post 方法是的请求参数
			pageSize : 10, // 页面大小
			startIndex : 0, // 服务器提供的接口页码是从几开始的，建议从0开始
			error : error, // 返回 null 时，回调
			success : success, // state 为 0 时，回调
			failed : failed, // state 为 1 时，回调
			last : last, // state 为 0 时 执行完分页后调用
			pagerHandler : 'pager', // 显示分页的 div 的 id
			thName:['店铺Id','店铺名称'],
			divId:'popup' //弹出层id
		};
		var method = {
			'get' : $.get,
			'post' : $.post
		};
		// 生成最终的参数列表
		var params = $.extend(true, {}, defaultParams, options);
		/**
		 * 返回 null 时，回调
		 */
		function error() {
			alert('没有查询到数据！');
		}
		function setParams(options){
			params = $.extend(true, {}, defaultParams, options);
		}
		/**
		 * state 为 0 时，回调
		 */
		function success(message) {
			
			var $tbody = $("#"+params.divId+"_data");
			$tbody.empty(); // 清空数据
			var len = message.result.data.length; // 返回条目数
			for ( var i = 0; i < len; i++) {
				// "id", "name","mp","contact");
				var id = getHtmlString(getHeadIndexValue(i, message, 'id'));
				var name = getHtmlString(getHeadIndexValue(i, message, 'name'));
				var mp = getHtmlString(getHeadIndexValue(i, message, 'mp'));

				var select = "<td><input class=\"common_btn\" type=\"button\" onclick=\"__shopSelected('"
						+ id + "','" + name + "')\" value=\"选择\"></input></td>";

				var tr = "<tr>" + "<td>" + id + "</td>" + "<td>" + name + "</td>"
						+ "<td>" + mp + "</td>" + select + "</tr>";
				$tbody.append($(tr));
			}
			
		}
		
		function __shopSelected(id,name){
			var htm="<option value='"+id+"'>"+name+"</option>"
			$("#"+params.divId).hide();
	 		$("#"+params.divId+"_yinying").hide();
	 		$("#"+params.id).html(htm);
		}

		/**
		 * state 为 1 时，回调
		 */
		function failed(message) {
			alert(message.msg);
		}

		/**
		 * state 为 0 时 执行完分页后调用
		 * 
		 * @param message
		 */
		function last(message) {
		}

		/**
		 * 分页
		 */
		function pagination(recordCount) {
			var pageCount = Math.ceil(recordCount / params.pageSize);
			$('#' + params.pagerHandler).pager({
				pagenumber : current, // 当前页码,从1开始
				pagecount : pageCount, // 总页码
				buttonClickCallback : function(indexClicked) {
					current = indexClicked;
					loadPage();
				}
			});
		}

		/**
		 * 加载数据
		 */
		function loadPage() {
			// 计算向服务器发送的页码
			var index = parseInt(current) + parseInt(params.startIndex) - 1;
			// 拼接 url ，加上分页的两个参数 0/10
			var urlWithPage = params.url + '/' + index + '/' + params.pageSize;
			// 发出请求
			method[params.method](urlWithPage, params.data, function(message) {
				if (IsEmpty(message)) {
					params.error();
					// 请求失败，回调
					return;
				}
				if (message.state == 0) {
					params.success(message);
					// state 为 0 回调
					pagination(message.result.len);
					// 调用分页
					params.last(message.last);
					$("#"+params.divId).show();
			 		$("#"+params.divId+"_yinying").show();
					addMargin($("#"+params.divId));
				} else {
					params.failed(message);
					// state 为 1 回调
				}
			}, 'json');

		}
		$(function(){
			
			var shopDivHtm="<div id=\""+params.divId+"_yinying\" class=\"yinying\" style='z-index:100;'></div><div id=\""+params.divId+"\" class=\"hideDiv\">" +
			"<div style=\"float:right;margin-bottom:5px;width:20px;height:20px;line-height:20px;" +
			"text-align:center;background-color:#eee;margin-bottom:5px;border:1px solid #ccc;\" >" +
			" <span style=\"cursor: pointer;font-size: 14px;\"  id=\""+params.divId+"_close\" >X</span>" +
					" </div><div class=\"bottom_search\"><div class=\"serWrapper\">" +
					"<input type=\"text\" id=\"searchName\" class=\"txt\">" +
					"<strong class=\"refresh\" onclick=\"$(\'#searchName\').val('')\">清空</strong>" +
					"</div><input id=\""+params.divId+"_close\" type=\"button\" style=\"width:auto;margin-left:5px;\" value=\"查询\" onclick=\"search2()\" class=\"common_btn\">" +
					"</div><table   id=\""+params.divId+"_data\" cellpadding=\"4\" cellspacing=\"0\" border=\"1\" width=\"100%\"><thead><tr>"
			for ( var i = 0; i < params.thName.length; i++) {
				
				shopDivHtm +="<th>"+params.thName[i]+"</th>";
			}
			
			shopDivHtm +="<th>操作</th></tr></thead></table><div id=\"shopPager\"></div></div>";
		 	$("body").prepend(shopDivHtm);
		 	
		 	
		});
		
	 	this.reload = loadPage;
	 	this.setParams = setParams;
	
	 	window.__shopSelected = __shopSelected;
 }
	window.Popup = popup;
})(jQuery, window);